﻿// Decompiled with JetBrains decompiler
// Type: Microsoft.InfoCards.ParsedPolicy
// Assembly: infocard, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// MVID: 8E14765A-6610-409A-BA36-099A0642905D
// Assembly location: E:\git\ALLIDA\windll\infocard.exe

using Microsoft.InfoCards.Diagnostics;

namespace Microsoft.InfoCards
{
  internal class ParsedPolicy
  {
    private string m_policyXmlOriginal;
    private string m_policyXmlPrimary;
    private string m_policyXmlSecondary;
    private PolicyType m_policyType;

    public string PolicyXmlOriginal
    {
      get
      {
        return this.m_policyXmlOriginal;
      }
    }

    public string PolicyXmlPrimary
    {
      get
      {
        return this.m_policyXmlPrimary;
      }
    }

    public string PolicyXmlSecondary
    {
      get
      {
        return this.m_policyXmlSecondary;
      }
    }

    public PolicyType PolicyType
    {
      get
      {
        return this.m_policyType;
      }
    }

    public ParsedPolicy(
      string policyXmlOriginal,
      string policyXmlPrimary,
      string policyXmlSecondary)
    {
      InfoCardTrace.Assert(!string.IsNullOrEmpty(policyXmlOriginal), "Original Policy Xml cannot be null or empty");
      this.m_policyXmlOriginal = policyXmlOriginal;
      this.m_policyXmlPrimary = policyXmlPrimary;
      this.m_policyXmlSecondary = policyXmlSecondary;
      if (!string.IsNullOrEmpty(policyXmlPrimary) && string.IsNullOrEmpty(policyXmlSecondary))
        this.m_policyType = PolicyType.PrimaryOnly;
      else if (!string.IsNullOrEmpty(policyXmlPrimary) && !string.IsNullOrEmpty(policyXmlSecondary))
        this.m_policyType = PolicyType.Composite;
      else if (string.IsNullOrEmpty(policyXmlPrimary) && !string.IsNullOrEmpty(policyXmlSecondary))
        this.m_policyType = PolicyType.SecondaryOnly;
      else
        InfoCardTrace.Assert(false, "Both policies cannot be empty");
    }
  }
}
